using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Text;

using Kenly.DBFramework.Gateway;

namespace Kenly.DBFramework.Reflection
{
    //internal class ParameterPropertyCollection
    //{
    //    private Dictionary<string, PropertyInfo> _properties = new Dictionary<string, PropertyInfo>();


    //    public ParameterPropertyCollection(Type type)
    //    {
    //        this.GetConfiguration(type);
    //    }

    //    //public PropertyInfo this[string propertyName]
    //    //{
    //    //    get
    //    //    {
    //    //        if (_properties.ContainsKey(propertyName))
    //    //        {
    //    //            return _properties[propertyName];
    //    //        }
    //    //        else
    //    //        {
    //    //            return null;
    //    //        }
    //    //    }
    //    //}

    //    #region ICollection<ColumnAttribute> Members

    //    #endregion

    //    #region IEnumerable<ColumnAttribute> Members

    //    //public IEnumerator<PropertyInfo> GetEnumerator()
    //    //{
    //    //    foreach (PropertyInfo propertyInfo in _properties.Values)
    //    //    {
    //    //        yield return propertyInfo;
    //    //    }
    //    //}

    //    #endregion




    //    #region Custom Methods

    //    //public bool ContainsKey(string propertyName)
    //    //{
    //    //    return _properties.ContainsKey(propertyName);
    //    //}

    //    private void GetConfiguration(Type type)
    //    {
    //        if (type == null)
    //        {
    //            return;
    //        }

    //        ParameterAttribute attribute = null;
    //        foreach (PropertyInfo propertyInfo in type.GetProperties())
    //        {
    //            attribute = AttributeUtility.GetParameterAttribute(propertyInfo);
    //            if (attribute != null)
    //            {
    //                if (!_properties.ContainsKey(propertyInfo.Name))
    //                {
    //                    _properties.Add(propertyInfo.Name, propertyInfo);
    //                }
    //            }
    //        }

    //    }
        
    //    #endregion

    //    #region ICollection<ColumnAttribute> Members

    //    //public void Add(ColumnAttribute item)
    //    //{
    //    //    if (!_columnProperties.ContainsKey(item.ColumnName))
    //    //    {
    //    //        _columnProperties.Add(item.ColumnName, item);
    //    //    }
    //    //}

    //    //public void Clear()
    //    //{
    //    //    _columnProperties.Clear();
    //    //}

    //    //public bool Contains(string propertyName)
    //    //{
    //    //    return _columnProperties.ContainsKey(propertyName);
    //    //}

    //    //public void CopyTo(ColumnAttribute[] array, int arrayIndex)
    //    //{
    //    //    _columnProperties.Values.CopyTo(array, arrayIndex);
    //    //}

    //    //public int Count
    //    //{
    //    //    get { return _columnProperties.Count; }
    //    //}

    //    //public bool IsReadOnly
    //    //{
    //    //    get { return true; }
    //    //}

    //    //public bool Remove(ColumnAttribute item)
    //    //{
    //    //    if (!_columnProperties.ContainsValue(item))
    //    //    {
    //    //        return false;
    //    //    }
    //    //    return _columnProperties.Remove(item.ColumnName);
    //    //}

    //    #endregion


      
    //}
}
